Cервис Tsmping
Tsmping служит для проверки доступности ресурсов сети Интернет.
Не редко бывают ситуации, когда Сим-карта зарегистрирована в сети, активна, имеет положительный баланс денежных средств, но, тем не менее, соединение прибора с интернет-ресурсами отсутствует. Причины этого могут не зависеть от настроек роутера, а быть вызваны проблемами на стороне GSM-оператора, например: на Сим-карте не подключена услуга "интернет", не оплачена услуга "роуминг", перебой в сети провайдера и т.п.
Tsmping использует стандартную shell-команду:
$ ping <host> -c1 -A -w3 -W3 -q
Она возвращает результат:
root@BITCORD-RTR-2:~# ping 8.8.8.8 -c1 -A -w3 -W3 -q
PING 8.8.8.8 (8.8.8.8): 56 data bytes
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 78.534/78.534/78.534 ms
- Для того чтобы этой информацией могли пользоваться другие сервисы данные о состоянии пинга сети хранятcя на шине UBUS.
Предоставление программного интерфейса
Использование сервиса осуществляется при помощи методов системной шины UBUS:
Структура файлов сервиса
/usr/lib/lua/tsmping
├── app.lua
├── lock.lua
├── notifier.lua
├── ping.sh
└── timer.lua
Конфигурация и init-скрипты
/etc/config/tsmping
# Файл автозапуска (сервис):
/etc/init.d/tsmping
# Скрипт запуска из командной строки:
/usr/sbin/tsmping
# не забудьте разрешить на выпонение (chmod +x)
| Имя файла | Предназначение |
|---|---|
| app.lua | Точка входа, основной файл, запускаемый сервисом в автозагрузке устройства |
| lock.lua | Содержит вспомогательные функции, реализующие режим занят/свободен |
| notifier.lua | Информирует на шине UBUS об изменившемся значении пинга сети |
| ping.sh | Shell-скрипт, выполняющий последовательно две функции:
|
| notifier.lua | Информирует на шине UBUS об изменившемся значении пинга сети |
Взаимодействие с другими сервисами
Tsmping является поставщиком данных для сервиса Applogic, в котором действует "Правило переключения Сим-карты при отсутствии PING сети" [04_rule].
- Режим "debug":
$ tsmping debug
- Пример отладочной информации:
root@BITCORD-RTR-2:~# tsmping debug
----------------------------
| Tsmping debug started |
----------------------------
9:14:9.55 [tsmping]: ping result updated by [ping.sh]: {"updated":"1771395249","comment":"","value":"1","changed":"1771395249","command":"ping 8.8.8.8"}
9:14:13.39 [tsmping]: ping result updated by [ping.sh]: {"updated":"1771395253","comment":"","value":"1","changed":"1771395249","command":"ping 8.8.8.8"}
9:14:17.39 [tsmping]: ping result updated by [ping.sh]: {"updated":"1771395257","comment":"","value":"1","changed":"1771395249","command":"ping 8.8.8.8"}
^C
-----------------------
Tsmping debug stopped.
-----------------------